/*
**  This is a copyrighted work which is functionally identical to work
**  originally published in Micro Cornucopia magazine (issue #52, March-April,
**  1990) and is freely licensed by the author, Walter Bright, for any use.
*/

/*_ toolkit.h   Tue Apr 18 1989   Modified by: Walter Bright */

#ifndef TOOLKIT_H
#define TOOLKIT_H

/* Define stuff that's different between machines.
 * PROTOTYPING		1 if compiler supports prototyping
 * HOSTBYTESWAPPED	1 if on the host machine the bytes are
 *			swapped (1 for 6809, 68000, 0 for 8088
 *			and VAX).
 */

#ifdef MSDOS
#define PROTOTYPING	1
#define HOSTBYTESWAPPED	0

#define BITSPERBYTE 8
#define SIZEOFINT   sizeof(int)
#define SIZEOFLONG  sizeof(long)

#else
#ifdef M_UNIX     /* SCO UNIX using Microsoft C. */
#define PROTOTYPING	1
#define HOSTBYTESWAPPED	0
#define EXIT_SUCCESS	0
#define EXIT_FAILURE	1

#define BITSPERBYTE 8
#define SIZEOFINT   sizeof(int)
#define SIZEOFLONG  sizeof(long)
#else                   /* NOTE: host.h is *NOT* included in SNIPPETS    */
#include	"host.h"	/* Compiler/environment-specific stuff goes here */
#endif

#endif

/* Static definitions do not appear in the linker .MAP file. Override	*/
/* the definition here to make them global if necessary.		*/
#ifndef STATIC
#define STATIC	static
#endif

#define arraysize(array)	(sizeof(array) / sizeof(array[0]))

/* Macros so that we can do prototyping, but still work with non-	*/
/* prototyping compilers:						*/

#if PROTOTYPING
#define P(s)	s
#else
#define P(s)	()
#endif

#ifdef DEBUG
#define debug(a)	(a)
#else
#define debug(a)
#endif

#endif /* TOOLKIT_H */
